package br.com.processo.modelo;

import java.util.List;

import javax.persistence.AttributeOverride;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

@Entity
@Table(name = "CIDADE")
@AttributeOverride(name = "id", column = @Column(name = "ID_CIDADE"))
public class Cidade extends Identificavel {
	
	@Size(max = 150)
	@Column(name = "NOME_CIDADE")
	@NotNull(message = "o nome da cidade nao pode ser null")
	private String nome;
	
	@NotNull(message = "Toda cidade tem um estado associado!")
	@ManyToOne(targetEntity = Estado.class)
	@JoinColumn(name = "ID_ESTADO")
	private Estado estado;
	
	@OneToMany(mappedBy = "cidade")
	private List<Usuario> usuarios;

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public Estado getEstado() {
		return estado;
	}

	public void setEstado(Estado estado) {
		this.estado = estado;
	}

	public List<Usuario> getUsuarios() {
		return usuarios;
	}

	public void setUsuarios(List<Usuario> usuarios) {
		this.usuarios = usuarios;
	}

}
